<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Data Matrix</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Data_Matrix"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Data_Matrix rootpage-Data_Matrix skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Data Matrix</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">For other uses, see <a href="Data_matrix_(disambiguation)" class="mw-redirect mw-disambig" title="Data matrix (disambiguation)">Data matrix</a>.</div>
<p class="mw-empty-elt">
</p>
<p>A <b>Data Matrix</b> is a <a href="Two-dimensional_code" class="mw-redirect" title="Two-dimensional code">two-dimensional code</a> consisting of black and white "cells" or dots arranged in either a <a href="Square_(geometry)" class="mw-redirect" title="Square (geometry)">square</a> or <a href="Rectangle" title="Rectangle">rectangular</a> pattern, also known as a <a href="Matrix_(mathematics)" title="Matrix (mathematics)">matrix</a>. The information to be encoded can be text or numeric data. The usual data size is from a few bytes up to 1556 <a href="Byte" title="Byte">bytes</a>. The length of the encoded data depends on the number of cells in the matrix. <a href="Error_correction_codes" class="mw-redirect" title="Error correction codes">Error correction codes</a> are often used to increase reliability: even if one or more cells are damaged so it is unreadable, the message can still be read. A Data Matrix symbol can store up to 2,335 <a href="Alphanumeric" class="mw-redirect" title="Alphanumeric">alphanumeric</a> characters.
</p><p>Data Matrix symbols are rectangular, usually square in shape and composed of square "cells" which represent <a href="Bit" title="Bit">bits</a>. Depending on the coding used, a "light" cell represents a 0 and a "dark" cell is a 1, or vice versa. Every Data Matrix is composed of two solid adjacent borders in an "L" shape (called the "finder pattern") and two other borders consisting of alternating dark and light "cells" or modules (called the "timing pattern"). Within these borders are rows and columns of cells encoding information. The finder pattern is used to locate and orient the symbol while the timing pattern provides a count of the number of rows and columns in the symbol. As more data is encoded in the symbol, the number of cells (rows and columns) increases. Each code is unique. Symbol sizes vary from 10×10 to 144×144 in the new version ECC 200, and from 9×9 to 49×49 in the old version ECC 000 – 140.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Applications">Applications</h2></div>
<p>The most popular application for Data Matrix is marking small items, due to the code's ability to encode fifty characters in a symbol that is readable at 2 or 3 mm<sup>2</sup> (0.003 or 0.005 sq in) and the fact that the code can be read with only a 20% contrast ratio.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
A Data Matrix is scalable; commercial applications exist with images as small as 300 micrometres (0.012 in) (laser etched on a 600-micrometre (0.024 in) silicon device) and as large as a 1 metre (3 ft) square (painted on the roof of a <a href="Boxcar" title="Boxcar">boxcar</a>). Fidelity of the marking and reading systems are the only limitation.
The US <a href="Electronic_Industries_Alliance" title="Electronic Industries Alliance">Electronic Industries Alliance</a> (EIA) recommends using Data Matrix for labeling small electronic components.<sup id="cite_ref-Stevenson_2-0" class="reference"><a href="#cite_note-Stevenson-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Data Matrix codes are becoming common on printed media such as labels and letters. The code can be read quickly by a <a href="Barcode_reader" title="Barcode reader">barcode reader</a> which allows the media to be tracked, for example when a parcel has been dispatched to the recipient.
</p>
<p>For industrial engineering purposes, Data Matrix codes can be marked directly onto components, ensuring that only the intended component is identified with the data-matrix-encoded data. The codes can be marked onto components with various methods, but within the aerospace industry these are commonly industrial ink-jet, dot-peen marking, laser marking, and electrolytic chemical etching (ECE). These methods give a permanent mark which can last up to the lifetime of the component.
</p><p>Once marked onto the component, reader cameras along the production line, as well as camera used by technicians after production is complete, can decode the Data Matrix to read relevant information. This can include the date of manufacture, serial number, and any other relevant information the manufacturer chooses to include. These reader cameras can also be used to track the movement of the component through the production line, as well as performing inventory stock checks.
</p>
<p>Data Matrix codes, along with other open-source codes such as 1D barcodes can also be read with mobile phones by downloading code specific mobile applications. Although many mobile devices are able to read 2D codes including Data Matrix Code,<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> few extend the decoding to enable mobile access and interaction, whereupon the codes can be used securely and across media; for example, in track and trace, anti-counterfeit, e.govt, and banking solutions.
</p>
<div class="mw-heading mw-heading3"><h3 id="Food_industry">Food industry</h3></div>
<p>Data Matrix codes are used in the <a href="Food_industry" title="Food industry">food industry</a> in <a href="Autocoding" title="Autocoding">autocoding</a> systems to prevent food products being packaged and dated incorrectly. Codes are maintained internally on a food manufacturers database and associated with each unique product, e.g. ingredient variations. For each product run the unique code is supplied to the printer. Label artwork is required to allow the 2D Data Matrix to be positioned for optimal scanning. For black on white codes testing isn't required unless print quality is an issue, but all color variations need to be tested before production to ensure they are readable.
</p>
<div class="mw-heading mw-heading3"><h3 id="Art">Art</h3></div>
<p>In May 2006 a German computer programmer, Bernd Hopfengärtner, created a large Data Matrix in a wheat field (in a fashion similar to <a href="Crop_circle" title="Crop circle">crop circles</a>). The message read "<a href="Hello%2C_World!" class="mw-redirect" title="Hello, World!">Hello, World!</a>".<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Technical_specifications">Technical specifications</h2></div>
<p>Data Matrix symbols are made up of modules arranged within a perimeter finder and timing pattern. It can encode up to 3,116 characters from the entire <a href="ASCII" title="ASCII">ASCII</a> character set (with extensions). The symbol consists of data regions which contain modules set out in a regular array. Large symbols contain several regions. Each data region is delimited by a finder pattern, and this is surrounded on all four sides by a quiet zone border (margin). (Note: The modules may be round or square- no specific shape is defined in the standard. For example, dot-peened cells are generally round.)
</p>
<div class="mw-heading mw-heading3"><h3 id="Data_Matrix_ECC_200">Data Matrix ECC 200</h3></div>
<p>ECC 200, the newer version of Data Matrix, uses <a href="Reed%E2%80%93Solomon_error_correction" title="Reed–Solomon error correction">Reed–Solomon</a> codes for error and erasure recovery. ECC 200 allows the routine reconstruction of the entire encoded data string when the symbol has sustained 30% damage, assuming the matrix can still be accurately located. Data Matrix has an error rate of less than 1 in 10 million characters scanned.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p><p>Symbols have an even number of rows and an even number of columns. Most of the symbols are square with sizes from 10 × 10 to 144 × 144. Some symbols however are rectangular with sizes from 8×18 to 16×48 (even values only). All symbols using the ECC 200 error correction can be recognized by the upper-right corner module being the same as the background color. (binary 0).
</p><p>Additional capabilities that differentiate ECC 200 symbols from the earlier standards include:
</p>
<ul><li>Inverse reading symbols (light images on a dark background)</li>
<li>Specification of the character set (via <a href="Extended_Channel_Interpretations" class="mw-redirect" title="Extended Channel Interpretations">Extended Channel Interpretations</a>)</li>
<li>Rectangular symbols</li>
<li>Structured append (linking of up to 16 symbols to encode larger amounts of data)</li></ul>
<p><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Data_Matrix_ECC_000–140">Data Matrix ECC 000–140</h3></div>
<p>Older versions of Data Matrix include ECC 000, ECC 050, ECC 080, ECC 100, ECC 140. Instead of using <a href="Reed%E2%80%93Solomon_error_correction" title="Reed–Solomon error correction">Reed–Solomon</a> codes like ECC 200, ECC 000–140 use a convolution-based error correction. Each varies in the amount of error correction it offers, with ECC 000 offering none, and ECC 140 offering the greatest. For error detection at decode time, even in the case of ECC 000, each of these versions also encode a <a href="Cyclic_redundancy_check" title="Cyclic redundancy check">cyclic redundancy check</a> (CRC) on the bit pattern. As an added measure, the placement of each bit in the code is determined by bit-placement tables included in the specification. These older versions always have an odd number of modules, and can be made in sizes ranging from 9 × 9 to 49 × 49. All symbols utilizing the ECC 000 through 140 error correction can be recognized by the upper-right corner module being the inverse of the background color. (binary 1).
</p><p>According to ISO/IEC 16022, "ECC 000–140 should only be used in closed applications where a single party controls both the production and reading of the symbols and is responsible for overall system performance."
</p>
<div class="mw-heading mw-heading3"><h3 id="Standards">Standards</h3></div>
<p>Data Matrix was invented by International Data Matrix, Inc. (ID Matrix) which was merged into RVSI/<a href="Acuity_CiMatrix" class="mw-redirect" title="Acuity CiMatrix">Acuity CiMatrix</a>, who were acquired by <a href="Siemens" title="Siemens">Siemens</a> AG in October 2005 , Microscan Systems in September 2008, and Omron in 2017. Data Matrix is covered today by several <a href="International_Organization_for_Standardization" title="International Organization for Standardization">ISO</a>/<a href="International_Electrotechnical_Commission" title="International Electrotechnical Commission">IEC</a> standards and is in the public domain for many applications, which means it can be used free of any licensing or royalties.
</p>
<ul><li>ISO/IEC 16022:2024—Data Matrix bar code symbology specification<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li>
<li>ISO/IEC 15415—2-D Print quality standard</li>
<li>ISO/IEC 15418:2016—Symbol data format semantics (<a href="GS1" title="GS1">GS1</a> application identifiers and ASC MH10 data identifiers and maintenance)</li>
<li>ISO/IEC 15424:2008—Data Carrier Identifiers (including Symbology Identifiers) [IDs for distinguishing different barcode types]</li>
<li>ISO/IEC 15434:2006—Syntax for high-capacity ADC media (format of data transferred from scanner to software, etc.)</li>
<li>ISO/IEC 15459—Unique identifiers</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Error_correction">Error correction</h3></div>
<p>Data Matrix codes use <a href="Reed%E2%80%93Solomon_error_correction" title="Reed–Solomon error correction">Reed–Solomon error correction</a> over the <a href="Finite_field" title="Finite field">finite field</a> <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathbb {F} _{256}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="double-struck">F</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>256</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathbb {F} _{256}}</annotation>
</semantics>
</math></span><img src="./3aae762a2df30726681155bd3c3fc1c2036011f9.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:4.118ex; height:2.509ex;" alt="{\displaystyle \mathbb {F} _{256}}" loading="lazy"></span> (or <span class="texhtml">GF(2<sup>8</sup>)</span>), the elements of which are encoded as <a href="Octet_(computing)" title="Octet (computing)">bytes of 8 bits</a>; the byte <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}b_{0}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>7</mn>
</mrow>
</msub>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>6</mn>
</mrow>
</msub>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>5</mn>
</mrow>
</msub>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>4</mn>
</mrow>
</msub>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msub>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}b_{0}}</annotation>
</semantics>
</math></span><img src="./137ef5fd0ae4fd285e6f0e4db882f616fd2bc31a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:16.414ex; height:2.509ex;" alt="{\displaystyle b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}b_{0}}" loading="lazy"></span> with a standard numerical value <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \textstyle \sum _{i=0}^{7}b_{i}2^{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mstyle displaystyle="false" scriptlevel="0">
<munderover>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>7</mn>
</mrow>
</munderover>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
<msup>
<mn>2</mn>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msup>
</mstyle>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \textstyle \sum _{i=0}^{7}b_{i}2^{i}}</annotation>
</semantics>
</math></span><img src="./55629aba21ee4a09f43702d43694991ef2d2e12f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:9.5ex; height:3.509ex;" alt="{\displaystyle \textstyle \sum _{i=0}^{7}b_{i}2^{i}}" loading="lazy"></span> encodes the field element <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \textstyle \sum _{i=0}^{7}b_{i}\alpha ^{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mstyle displaystyle="false" scriptlevel="0">
<munderover>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>7</mn>
</mrow>
</munderover>
<msub>
<mi>b</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msup>
</mstyle>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \textstyle \sum _{i=0}^{7}b_{i}\alpha ^{i}}</annotation>
</semantics>
</math></span><img src="./756047107c1ba315990894c577708ad1f1870a17.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:9.826ex; height:3.509ex;" alt="{\displaystyle \textstyle \sum _{i=0}^{7}b_{i}\alpha ^{i}}" loading="lazy"></span> where <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \alpha \in \mathbb {F} _{256}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>α<!-- α --></mi>
<mo>∈<!-- ∈ --></mo>
<msub>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="double-struck">F</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>256</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \alpha \in \mathbb {F} _{256}}</annotation>
</semantics>
</math></span><img src="./bd800ad6bd2fea8492aee17c266dee4bd26f6ec5.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:8.447ex; height:2.509ex;" alt="{\displaystyle \alpha \in \mathbb {F} _{256}}" loading="lazy"></span> is taken to be a primitive element satisfying <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \alpha ^{8}+\alpha ^{5}+\alpha ^{3}+\alpha ^{2}+1=0}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>8</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>5</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>1</mn>
<mo>=</mo>
<mn>0</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \alpha ^{8}+\alpha ^{5}+\alpha ^{3}+\alpha ^{2}+1=0}</annotation>
</semantics>
</math></span><img src="./0224bc5a9a91ccebfef0fc5c5ca87783cfcc08f9.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:26.952ex; height:2.843ex;" alt="{\displaystyle \alpha ^{8}+\alpha ^{5}+\alpha ^{3}+\alpha ^{2}+1=0}" loading="lazy"></span>. The primitive polynomial is <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x^{8}+x^{5}+x^{3}+x^{2}+1}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>8</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>5</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>1</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle x^{8}+x^{5}+x^{3}+x^{2}+1}</annotation>
</semantics>
</math></span><img src="./f70065805bf97533eac3a86f27e33e14d2391d91.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:22.06ex; height:2.843ex;" alt="{\displaystyle x^{8}+x^{5}+x^{3}+x^{2}+1}" loading="lazy"></span>, corresponding to the polynomial number 301, with initial root = 1 to obtain generator polynomials. The Reed–Solomon code uses different generator polynomials over <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathbb {F} _{256}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="double-struck">F</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>256</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathbb {F} _{256}}</annotation>
</semantics>
</math></span><img src="./3aae762a2df30726681155bd3c3fc1c2036011f9.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:4.118ex; height:2.509ex;" alt="{\displaystyle \mathbb {F} _{256}}" loading="lazy"></span>, depending on how many error correction bytes the code adds. The number of bytes added is equal to the degree of the generator polynomial.
</p><p>For example, in the 10 × 10 symbol, there are 3 data bytes and 5 error correction bytes. The generator polynomial is obtained as: <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle g(x)=(x+\alpha )(x+\alpha ^{2})(x+\alpha ^{3})(x+\alpha ^{4})(x+\alpha ^{5})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>g</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo>+</mo>
<mi>α<!-- α --></mi>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msup>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>4</mn>
</mrow>
</msup>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>5</mn>
</mrow>
</msup>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle g(x)=(x+\alpha )(x+\alpha ^{2})(x+\alpha ^{3})(x+\alpha ^{4})(x+\alpha ^{5})}</annotation>
</semantics>
</math></span><img src="./781f57e5bd2801950519b26fe15bf17ba3afceb4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:48.905ex; height:3.176ex;" alt="{\displaystyle g(x)=(x+\alpha )(x+\alpha ^{2})(x+\alpha ^{3})(x+\alpha ^{4})(x+\alpha ^{5})}" loading="lazy"></span>,
</p><p>which gives:
<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle g(x)=x^{5}+\alpha ^{235}x^{4}+\alpha ^{207}x^{3}+\alpha ^{210}x^{2}+\alpha ^{244}x+\alpha ^{15}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>g</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>5</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>235</mn>
</mrow>
</msup>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>4</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>207</mn>
</mrow>
</msup>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>210</mn>
</mrow>
</msup>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>244</mn>
</mrow>
</msup>
<mi>x</mi>
<mo>+</mo>
<msup>
<mi>α<!-- α --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>15</mn>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle g(x)=x^{5}+\alpha ^{235}x^{4}+\alpha ^{207}x^{3}+\alpha ^{210}x^{2}+\alpha ^{244}x+\alpha ^{15}}</annotation>
</semantics>
</math></span><img src="./f4d6279a4b9dee18f7a4a9877c43999b9be92df4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:52.528ex; height:3.176ex;" alt="{\displaystyle g(x)=x^{5}+\alpha ^{235}x^{4}+\alpha ^{207}x^{3}+\alpha ^{210}x^{2}+\alpha ^{244}x+\alpha ^{15}}" loading="lazy"></span>,
</p><p>or with decimal coefficients:
<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle g(x)=x^{5}+62x^{4}+111x^{3}+15x^{2}+48x+228}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>g</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>5</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>62</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>4</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>111</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>15</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>48</mn>
<mi>x</mi>
<mo>+</mo>
<mn>228</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle g(x)=x^{5}+62x^{4}+111x^{3}+15x^{2}+48x+228}</annotation>
</semantics>
</math></span><img src="./b73a9447e61614a2bb69ec55750b8b7858d764ad.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:46.37ex; height:3.176ex;" alt="{\displaystyle g(x)=x^{5}+62x^{4}+111x^{3}+15x^{2}+48x+228}" loading="lazy"></span>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Encoding">Encoding</h3></div>
<p>The encoding process is described in the <a href="ISO/IEC" class="mw-redirect" title="ISO/IEC">ISO/IEC</a> standard 16022:2006.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Open-source software for encoding and decoding the ECC-200 variant of Data Matrix has been published.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>The diagrams below illustrate the placement of the message data within a Data Matrix symbol. The message is "Wikipedia", and it is arranged in a somewhat complicated diagonal pattern starting near the upper-left corner. Some characters are split in two pieces, such as the initial W, and the third 'i' is in "corner pattern 2" rather than the usual L-shaped arrangement. Also shown are the end-of-message code (marked End), the padding (P) and error correction (E) bytes, and four modules of unused space (X).
</p><p>The symbol is of size 16×16 (14×14 data area), with 12 data bytes (including 'End' and padding) and 12 error correction bytes. A (255,243,6) Reed Solomon code shortened to (24,12,6) is used. It can correct up to 6 byte errors or erasures.
</p><p>To obtain the error correction bytes, the following procedure may be carried out:
</p><p>The generator polynomial specified for the (24,12,6) code, is:
<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle g(x)=x^{12}+242x^{11}+100x^{10}+178x^{9}+97x^{8}+213x^{7}+142x^{6}+42x^{5}+61x^{4}+91x^{3}+158x^{2}+153x+41}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>g</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>12</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>242</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>11</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>100</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>10</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>178</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>9</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>97</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>8</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>213</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>7</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>142</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>6</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>42</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>5</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>61</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>4</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>91</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>158</mn>
<msup>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
<mo>+</mo>
<mn>153</mn>
<mi>x</mi>
<mo>+</mo>
<mn>41</mn>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle g(x)=x^{12}+242x^{11}+100x^{10}+178x^{9}+97x^{8}+213x^{7}+142x^{6}+42x^{5}+61x^{4}+91x^{3}+158x^{2}+153x+41}</annotation>
</semantics>
</math></span><img src="./e0d9ef78005d44897b3990a90fd4a3402cafe6d2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:107.493ex; height:3.176ex;" alt="{\displaystyle g(x)=x^{12}+242x^{11}+100x^{10}+178x^{9}+97x^{8}+213x^{7}+142x^{6}+42x^{5}+61x^{4}+91x^{3}+158x^{2}+153x+41}" loading="lazy"></span>,
which may also be written in the form of a matrix of decimal coefficients:
</p>
<pre><b>[1 242 100 178 97 213 142 42 61 91 158 153 41]</b>
</pre>
<p>The 12-byte long message "Wikipedia" including 'End', P1 and P2, in decimal coefficients (see the diagrams below for the computation method using ASCII values), is:
</p>
<pre><b>[<span style="color:light-dark(blue, lightblue)">88 106 108 106 113 102 101 106 98 129 251 147</span>]</b>
</pre>
<p>Using the procedure for <a href="Reed%E2%80%93Solomon_error_correction#Constructions_(encoding)" title="Reed–Solomon error correction">Reed-Solomon systematic encoding</a>, the 12 error correction bytes obtained (E1 through E12 in decimal) in the form of the remainder after polynomial division are:
</p>
<pre><b>[<span style="color:light-dark(red, lightcoral)">104 216 88 39 233 202 71 217 26 92 25 232</span>]</b>
</pre>
<p>These error correction bytes are then appended to the original message. The resulting coded message has 24 bytes, and is in the form:
</p>
<pre><b>[<span style="color:light-dark(blue, lightblue)">W i k i p e d i a 'End' P1 P2</span> <span style="color:light-dark(red, lightcoral)">E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12</span>]</b>
</pre>
<p>or in decimal coefficients:
</p>
<pre><b>[<span style="color:light-dark(blue, lightblue)">88 106 108 106 113 102 101 106 98 129 251 147</span> <span style="color:light-dark(red, lightcoral)">104 216 88 39 233 202 71 217 26 92 25 232</span>]</b>
</pre>
<p>and in hexadecimal coefficients:
</p>
<pre><b>[<span style="color:light-dark(blue, lightblue)">58 6A 6C 6A 71 66 65 6A 62 81 FB 93</span> <span style="color:light-dark(red, lightcoral)">68 D8 58 27 E9 CA 47 D9 1A 5C 19 E8</span>]</b>
</pre>
<p><br>
</p>
<table>
<tbody><tr valign="top">
<td><span class="mw-default-size" typeof="mw:File"></span>
</td>
<td><span typeof="mw:File"></span>
</td></tr></tbody></table>
<p>Multiple encoding modes are used to store different kinds of messages. The default mode stores one <a href="ASCII" title="ASCII">ASCII</a> character per 8-bit codeword. Control codes are provided to switch between modes, as shown below.
</p>
<table class="wikitable">
<tbody><tr>
<th>Codeword</th>
<th>Codeword hexadecimal</th>
<th>Interpretation
</th></tr>
<tr>
<td>0</td>
<td>0</td>
<td>Not used
</td></tr>
<tr>
<td>1–128</td>
<td>1-80</td>
<td>ASCII data (ASCII value + 1)
</td></tr>
<tr>
<td>129</td>
<td>81</td>
<td>End of message
</td></tr>
<tr>
<td>130–229</td>
<td>82-e5</td>
<td>Digit pairs 00–99
</td></tr>
<tr>
<td>230</td>
<td>e6</td>
<td>Begin <a href="#Text_modes">C40</a> encoding
</td></tr>
<tr>
<td>231</td>
<td>e7</td>
<td>Begin <a href="#Base_256_mode">Base 256</a> encoding
</td></tr>
<tr>
<td>232</td>
<td>e8</td>
<td>FNC1
</td></tr>
<tr>
<td>233</td>
<td>e9</td>
<td>Structured append. Allows a message to be split across multiple symbols.
</td></tr>
<tr>
<td>234</td>
<td>ea</td>
<td>Reader programming
</td></tr>
<tr>
<td>235</td>
<td>eb</td>
<td>Set <a href="High_bit" class="mw-redirect" title="High bit">high bit</a> of the following character
</td></tr>
<tr>
<td>236</td>
<td>ec</td>
<td>05 Macro
</td></tr>
<tr>
<td>237</td>
<td>ed</td>
<td>06 Macro
</td></tr>
<tr>
<td>238</td>
<td>ee</td>
<td>Begin <a href="ANSI_X12" class="mw-redirect" title="ANSI X12">ANSI X12</a> encoding
</td></tr>
<tr>
<td>239</td>
<td>ef</td>
<td>Begin <a href="#Text_modes">Text</a> encoding
</td></tr>
<tr>
<td>240</td>
<td>f0</td>
<td>Begin <a href="EDIFACT" title="EDIFACT">EDIFACT</a> encoding
</td></tr>
<tr>
<td>241</td>
<td>f1</td>
<td><a href="Extended_Channel_Interpretation" title="Extended Channel Interpretation">Extended Channel Interpretation</a> code
</td></tr>
<tr>
<td>242–255</td>
<td>f2-ff</td>
<td>Not used
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Text_modes">Text modes</h3></div>
<p>The C40, Text and <a href="ANSI_X12" class="mw-redirect" title="ANSI X12">X12</a> modes are potentially more compact for storing text messages. They are similar to <a href="DEC_Radix-50" class="mw-redirect" title="DEC Radix-50">DEC Radix-50</a>, using character codes in the range 0–39, and three of these codes are combined to make a number up to 40<sup>3</sup>=64000, which is packed into two bytes (maximum value 65536) as follows:
</p>
<dl><dd>V = C1×1600 + C2×40 + C3 + 1</dd>
<dd>B1 = floor(V/256)</dd>
<dd>B2 = V mod 256</dd></dl>
<p>The resulting value of B1 is in the range 0–250. The special value 254 is used to return to ASCII encoding mode.
</p><p>Character code interpretations are shown in the table below. The C40 and Text modes have four separate sets. Set 0 is the default, and contains codes that temporarily select a different set for the next character. The only difference is that they reverse upper-and lower-case letters. C40 is primarily upper-case, with lower-case letters in set 3; Text is the other way around. Set 1, containing ASCII control codes, and set 2, containing punctuation symbols are identical in C40 and Text mode.
</p>
<table class="wikitable" style="text-align:center;">
<tbody><tr>
<th rowspan="2">Code</th>
<th colspan="2">set 0</th>
<th rowspan="2">set 1</th>
<th rowspan="2">set 2</th>
<th colspan="2">set 3</th>
<th rowspan="2">X12
</th></tr>
<tr>
<th>C40</th>
<th>Text</th>
<th>C40</th>
<th>Text
</th></tr>
<tr>
<td>0</td>
<td colspan="2">set 1</td>
<td>NUL</td>
<td>!</td>
<td colspan="2">`</td>
<td>CR
</td></tr>
<tr>
<td>1</td>
<td colspan="2">set 2</td>
<td>SOH</td>
<td>"</td>
<td>a</td>
<td>A</td>
<td>*
</td></tr>
<tr>
<td>2</td>
<td colspan="2">set 3</td>
<td>STX</td>
<td>#</td>
<td>b</td>
<td>B</td>
<td>>
</td></tr>
<tr>
<td>3</td>
<td colspan="2">space</td>
<td>ETX</td>
<td>$</td>
<td>c</td>
<td>C</td>
<td>space
</td></tr>
<tr>
<td>4</td>
<td colspan="2">0</td>
<td>EOT</td>
<td>%</td>
<td>d</td>
<td>D</td>
<td>0
</td></tr>
<tr>
<td>5</td>
<td colspan="2">1</td>
<td>ENQ</td>
<td>&</td>
<td>e</td>
<td>E</td>
<td>1
</td></tr>
<tr>
<td>6</td>
<td colspan="2">2</td>
<td>ACK</td>
<td>'</td>
<td>f</td>
<td>F</td>
<td>2
</td></tr>
<tr>
<td>7</td>
<td colspan="2">3</td>
<td>BEL</td>
<td>(</td>
<td>g</td>
<td>G</td>
<td>3
</td></tr>
<tr>
<td>8</td>
<td colspan="2">4</td>
<td>BS</td>
<td>)</td>
<td>h</td>
<td>H</td>
<td>4
</td></tr>
<tr>
<td>9</td>
<td colspan="2">5</td>
<td>HT</td>
<td>*</td>
<td>i</td>
<td>I</td>
<td>5
</td></tr>
<tr>
<td>10</td>
<td colspan="2">6</td>
<td>LF</td>
<td>+</td>
<td>j</td>
<td>J</td>
<td>6
</td></tr>
<tr>
<td>11</td>
<td colspan="2">7</td>
<td>VT</td>
<td>,</td>
<td>k</td>
<td>K</td>
<td>7
</td></tr>
<tr>
<td>12</td>
<td colspan="2">8</td>
<td>FF</td>
<td>–</td>
<td>l</td>
<td>L</td>
<td>8
</td></tr>
<tr>
<td>13</td>
<td colspan="2">9</td>
<td>CR</td>
<td>.</td>
<td>m</td>
<td>M</td>
<td>9
</td></tr>
<tr>
<td>14</td>
<td>A</td>
<td>a</td>
<td>SO</td>
<td>/</td>
<td>n</td>
<td>N</td>
<td>A
</td></tr>
<tr>
<td>15</td>
<td>B</td>
<td>b</td>
<td>SI</td>
<td>:</td>
<td>o</td>
<td>O</td>
<td>B
</td></tr>
<tr>
<td>16</td>
<td>C</td>
<td>c</td>
<td>DLE</td>
<td>;</td>
<td>p</td>
<td>P</td>
<td>C
</td></tr>
<tr>
<td>17</td>
<td>D</td>
<td>d</td>
<td>DC1</td>
<td><</td>
<td>q</td>
<td>Q</td>
<td>D
</td></tr>
<tr>
<td>18</td>
<td>E</td>
<td>e</td>
<td>DC2</td>
<td>=</td>
<td>r</td>
<td>R</td>
<td>E
</td></tr>
<tr>
<td>19</td>
<td>F</td>
<td>f</td>
<td>DC3</td>
<td>></td>
<td>s</td>
<td>S</td>
<td>F
</td></tr>
<tr>
<td>20</td>
<td>G</td>
<td>g</td>
<td>DC4</td>
<td>?</td>
<td>t</td>
<td>T</td>
<td>G
</td></tr>
<tr>
<td>21</td>
<td>H</td>
<td>h</td>
<td>NAK</td>
<td>@</td>
<td>u</td>
<td>U</td>
<td>H
</td></tr>
<tr>
<td>22</td>
<td>I</td>
<td>i</td>
<td>SYN</td>
<td>[</td>
<td>v</td>
<td>V</td>
<td>I
</td></tr>
<tr>
<td>23</td>
<td>J</td>
<td>j</td>
<td>ETB</td>
<td>\</td>
<td>w</td>
<td>W</td>
<td>J
</td></tr>
<tr>
<td>24</td>
<td>K</td>
<td>k</td>
<td>CAN</td>
<td>]</td>
<td>x</td>
<td>X</td>
<td>K
</td></tr>
<tr>
<td>25</td>
<td>L</td>
<td>l</td>
<td>EM</td>
<td>^</td>
<td>y</td>
<td>Y</td>
<td>L
</td></tr>
<tr>
<td>26</td>
<td>M</td>
<td>m</td>
<td>SUB</td>
<td>_</td>
<td>z</td>
<td>Z</td>
<td>M
</td></tr>
<tr>
<td>27</td>
<td>N</td>
<td>n</td>
<td>ESC</td>
<td>FNC1</td>
<td colspan="2">{</td>
<td>N
</td></tr>
<tr>
<td>28</td>
<td>O</td>
<td>o</td>
<td>FS</td>
<td rowspan="2" bgcolor="lightgrey"></td>
<td colspan="2">|</td>
<td>O
</td></tr>
<tr>
<td>29</td>
<td>P</td>
<td>p</td>
<td>GS</td>
<td colspan="2">}</td>
<td>P
</td></tr>
<tr>
<td>30</td>
<td>Q</td>
<td>q</td>
<td>RS</td>
<td>hibit</td>
<td colspan="2">~</td>
<td>Q
</td></tr>
<tr>
<td>31</td>
<td>R</td>
<td>r</td>
<td>US</td>
<td rowspan="9" bgcolor="lightgrey"></td>
<td colspan="2">DEL</td>
<td>R
</td></tr>
<tr>
<td>32</td>
<td>S</td>
<td>s</td>
<td rowspan="8" bgcolor="lightgrey"></td>
<td colspan="2" rowspan="8" bgcolor="lightgrey"></td>
<td>S
</td></tr>
<tr>
<td>33</td>
<td>T</td>
<td>t</td>
<td>T
</td></tr>
<tr>
<td>34</td>
<td>U</td>
<td>u</td>
<td>U
</td></tr>
<tr>
<td>35</td>
<td>V</td>
<td>v</td>
<td>V
</td></tr>
<tr>
<td>36</td>
<td>W</td>
<td>w</td>
<td>W
</td></tr>
<tr>
<td>37</td>
<td>X</td>
<td>x</td>
<td>X
</td></tr>
<tr>
<td>38</td>
<td>Y</td>
<td>y</td>
<td>Y
</td></tr>
<tr>
<td>39</td>
<td>Z</td>
<td>z</td>
<td>Z
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="EDIFACT_mode">EDIFACT mode</h3></div>
<p><a href="EDIFACT" title="EDIFACT">EDIFACT</a> mode uses six bits per character, with four characters packed into three bytes. It can store digits, upper-case letters, and many punctuation marks, but has no support for lower-case letters.
</p>
<table class="wikitable">
<tbody><tr>
<th>Code</th>
<th>Meaning
</th></tr>
<tr>
<td>0–30</td>
<td>ASCII codes 64–94
</td></tr>
<tr>
<td>31</td>
<td>Return to ASCII mode
</td></tr>
<tr>
<td>32–63</td>
<td>ASCII codes 32–63
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Base_256_mode">Base 256 mode</h3></div>
<p>Base 256 mode data starts with a length indicator, followed by a number of data bytes. A length of 1 to 249 is encoded as a single byte,
and longer lengths are stored as two bytes.
</p>
<dl><dd>L1 = floor(length / 250) + 249, L2 = length mod 250</dd></dl>
<p>It is desirable to avoid long strings of zeros in the coded message, because they become large blank areas in the Data Matrix symbol, which may
cause a scanner to lose synchronization. (The default ASCII encoding does not use zero for this reason.) In order to make that less likely, the
length and data bytes are obscured by adding a pseudorandom value R(n), where n is the position in the byte stream.
</p>
<dl><dd>R(n) = (149 × n) mod 255 + 1</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Patent_issues">Patent issues</h2></div>
<p>Prior to the expiration of US patent 5,612,524<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> in November 2007, intellectual property company <a href="Acacia_Research" title="Acacia Research">Acacia Technologies</a> claimed that Data Matrix was partially covered by its contents. As the patent owner, Acacia allegedly contacted Data Matrix users demanding license fees related to the patent.
</p><p><a href="Cognex_Corporation" title="Cognex Corporation">Cognex Corporation</a>, a large manufacturer of 2D barcode devices, filed a <a href="Declaratory_judgment" title="Declaratory judgment">declaratory judgment</a> complaint on 13 March 2006 after receiving information that Acacia had contacted its customers demanding licensing fees. On 19 May 2008 Judge Joan N. Ericksen of the U.S. District Court in Minnesota ruled in favor of Cognex.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> The ruling held that the '524 patent, which claimed to cover a system for capturing and reading 2D symbology codes, is both invalid and unenforceable due to <a href="Inequitable_conduct" title="Inequitable conduct">inequitable conduct</a> by the defendants during the procurement of the patent.
</p><p>While the ruling was delivered after the patent expired, it precluded claims for infringement based on use of Data Matrix prior to November 2007.
</p><p>A German patent application DE 4107020 was filed in 1991, and published in 1992. This patent is not cited in the above US patent applications and might invalidate them.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="PDF417" title="PDF417">PDF417</a></li>
<li><a href="Aztec_Code" title="Aztec Code">Aztec Code</a></li>
<li><a href="High_Capacity_Color_Barcode" title="High Capacity Color Barcode">High Capacity Color Barcode</a></li>
<li><a href="MaxiCode" title="MaxiCode">MaxiCode</a></li>
<li><a href="Nintendo_e-Reader" title="Nintendo e-Reader">Nintendo e-Reader</a></li>
<li><a href="QR_Code" class="mw-redirect" title="QR Code">QR Code</a></li>
<li><a href="Semacode" title="Semacode">Semacode</a></li>
<li><a href="SPARQCode" title="SPARQCode">SPARQCode</a></li>
<li><a href="Trusted_paper_key" class="mw-redirect" title="Trusted paper key">Trusted paper key</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20170914052646/http://www.jollytech.com/technologies/barcode-symbologies/data-matrix-barcode.php">"Data Matrix Barcode"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.jollytech.com/technologies/barcode-symbologies/data-matrix-barcode.php">the original</a> on 14 September 2017.</cite></span>
</li>
<li id="cite_note-Stevenson-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Stevenson_2-0">^</a></b></span> <span class="reference-text">
<cite id="CITEREFStevenson2005" class="citation news cs1">Stevenson, Rick (December 2005). <a rel="nofollow" class="external text" href="http://pcdandm.com/pcdmag/mag/0512/0512stevenson.pdf">"Laser Marking Matrix Codes on PCBs"</a> <span class="cs1-format">(PDF)</span>. <i>Printed Circuit Design and Manufacture</i><span class="reference-accessdate">. Retrieved <span class="nowrap">31 May</span> 2007</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">Stefan, V. (2012). The use of 2D codes in the development of mobile applications with database. <i>Valahian Journal of Economic Studies, 3</i>(2), 105-114. Retrieved from <a rel="nofollow" class="external free" href="https://econpapers.repec.org/article/vlhjournl/v_3a3_3ay_3a2012_3ai_3a2_3ap_3a105-114.htm">https://econpapers.repec.org/article/vlhjournl/v_3a3_3ay_3a2012_3ai_3a2_3ap_3a105-114.htm</a></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://arstechnica.com/journals/thumbs.ars/2007/06/11/german-programmer-programs-hello-world-into-wheat-field">"German man programs "Hello World" into wheat field"</a>. <i>arstechnica.com</i>. 11 June 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">22 February</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190820162149/https://www.idautomation.com/barcode-fonts/2d/OSU-DataMatrix-PDF417.pdf">"Data Matrix and PDF417 Data Integrity Test"</a> <span class="cs1-format">(PDF)</span>. <i>idautomation.com</i>. Archived from <a rel="nofollow" class="external text" href="https://www.idautomation.com/barcode-fonts/2d/OSU-DataMatrix-PDF417.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 20 August 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">20 August</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFEngin" class="citation news cs1">Engin, Thomas. <a rel="nofollow" class="external text" href="https://www.qr-code-scanner-online.com/">"QR Code scanner online"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">27 February</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external free" href="https://www.iso.org/standard/80926.html">https://www.iso.org/standard/80926.html</a></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text">ISO e-commerce page for this standard <a rel="nofollow" class="external free" href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44230">http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44230</a></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://code.google.com/p/zxing/">"GitHub – zxing/zxing: Official ZXing ("Zebra Crossing") project home"</a>. <i>google.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">22 February</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://libdmtx.sourceforge.net/">"libdmtx Home"</a>. <i>sourceforge.net</i><span class="reference-accessdate">. Retrieved <span class="nowrap">22 February</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1041539562">
/* start https://en.wikipedia.org/ */
.mw-parser-output .citation{word-wrap:break-word}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}
/* end https://en.wikipedia.org/ */
</style><span class="citation patent" id="CITEREFSant'AnselmoSant'AnselmoHooper1997"><a rel="nofollow" class="external text" href="https://worldwide.espacenet.com/textdoc?DB=EPODOC&IDX=US5612524">US 5612524</a>, Sant'Anselmo, Carl; Sant'Anselmo, Robert & Hooper, David C., "Identification symbol system and method with orientation mechanism", published 18 March 1997, issued 18 March 1997</span><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Apatent&rft.number=5612524&rft.cc=US&rft.title=Identification+symbol+system+and+method+with+orientation+mechanism&rft.inventor=Sant%27Anselmo&rft.date=1997-03-18&rft.appldate=1987-11-25&rft.pubdate=1997-03-18&rft.prioritydate=1995-03-28"><span style="display: none;"> </span></span></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.groklaw.net/article.php?story=20080622003128295">"Cognex Invalidates Acacia Patent '524; Next? Suing for Business Defamation"</a>. <i><a href="Groklaw" title="Groklaw">Groklaw</a></i>. 23 June 2008. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100505025217/http://www.groklaw.net/article.php?story=20080622003128295">Archived</a> from the original on 5 May 2010.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:DataMatrix" class="extiw external" title="commons:Category:DataMatrix">DataMatrix</a></span>.</div></div>
</div>
<ul><li><a rel="nofollow" class="external text" href="http://www.gs1.org/docs/barcodes/GS1_DataMatrix_Guideline.pdf">GS1 DataMatrix Guideline: Overview and technical introduction to the use of GS1 DataMatrix</a></li>
<li><a rel="nofollow" class="external text" href="https://www.datamatrix-code-generator.com/">Datamatrix Code Generator - Online Tool</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Barcodes453" style="padding:3px"><table class="nowraplinks mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Barcodes453" style="font-size:114%;margin:0 4em"><a href="Barcode" title="Barcode">Barcodes</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Linear barcodes</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="KarTrak" title="KarTrak">Automatic Car Identification</a></li>
<li><a href="Code_11" title="Code 11">Code 11</a></li>
<li><a href="Code_39" title="Code 39">Code 39</a></li>
<li><a href="Code_93" title="Code 93">Code 93</a></li>
<li><a href="Code_128" title="Code 128">Code 128</a></li>
<li><a href="Codabar" title="Codabar">Codabar</a></li>
<li><a href="International_Article_Number" title="International Article Number">European Article Number</a></li>
<li><a href="GS1_DataBar" class="mw-redirect" title="GS1 DataBar">GS1 DataBar</a></li>
<li><a href="Industrial_2_of_5" title="Industrial 2 of 5">Industrial 2 of 5</a></li>
<li><a href="Interleaved_2_of_5" title="Interleaved 2 of 5">Interleaved 2 of 5</a></li>
<li><a href="ITF-14" class="mw-redirect" title="ITF-14">ITF-14</a></li>
<li><a href="Matrix_2_of_5" title="Matrix 2 of 5">Matrix 2 of 5</a></li>
<li><a href="MSI_Barcode" title="MSI Barcode">MSI Barcode</a></li>
<li><a href="Patch_Code" title="Patch Code">Patch Code</a></li>
<li><a href="Pharmacode" title="Pharmacode">Pharmacode</a></li>
<li><a href="Plessey_Code" title="Plessey Code">Plessey</a></li>
<li><a href="Telepen" title="Telepen">Telepen</a></li>
<li><a href="Universal_Product_Code" title="Universal Product Code">UPC</a></li></ul>
</div></td><td class="noviewer navbox-image" rowspan="9" style="width:1px;padding:0 0 0 2px"><div><table>
<tbody><tr><td><span typeof="mw:File"></span></td>
</tr><tr><td><a href="Universal_Product_Code" title="Universal Product Code">UPC-A</a></td>
</tr><tr><td><span typeof="mw:File"></span></td>
</tr><tr><td><a href="MaxiCode" title="MaxiCode">MaxiCode</a></td>
</tr></tbody></table></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Mail" title="Mail">Post office</a> barcodes</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CPC_Binary_Barcode" title="CPC Binary Barcode">CPC Binary Barcode</a></li>
<li><a href="Facing_Identification_Mark" title="Facing Identification Mark">Facing Identification Mark</a></li>
<li><a href="PostBar" title="PostBar">PostBar</a></li>
<li><a href="POSTNET" title="POSTNET">POSTNET</a></li>
<li><a href="RM4SCC" title="RM4SCC">RM4SCC</a></li>
<li><a href="Intelligent_Mail_barcode" title="Intelligent Mail barcode">Intelligent Mail barcode</a></li>
<li><a href="Postal_Alpha_Numeric_Encoding_Technique" title="Postal Alpha Numeric Encoding Technique">PLANET</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">2D barcodes (stacked)</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Codablock" title="Codablock">Codablock</a></li>
<li><a href="GS1_DataBar" class="mw-redirect" title="GS1 DataBar">GS1 DataBar</a></li>
<li><a href="MicroPDF417" title="MicroPDF417">MicroPDF417</a></li>
<li><a href="PDF417" title="PDF417">PDF417</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">2D barcodes (<a href="Matrix_(mathematics)" title="Matrix (mathematics)">matrix</a>)</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Aztec_Code" title="Aztec Code">Aztec Code</a></li>
<li> (<a href="Semacode" title="Semacode">Semacode</a>)</li>
<li><a href="DotCode" title="DotCode">DotCode</a></li>
<li><a href="Han_Xin_code" title="Han Xin code">Han Xin code</a></li>
<li><a href="JAB_Code" title="JAB Code">JAB Code</a></li>
<li><a href="MaxiCode" title="MaxiCode">MaxiCode</a></li>
<li><a href="QR_code" title="QR code">QR code</a></li>
<li><a href="Rectangular_Micro_QR_Code" title="Rectangular Micro QR Code">rMQR Code</a></li>
<li><a href="Boxing_barcode" title="Boxing barcode">Boxing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Polar_coordinate_system" title="Polar coordinate system">Polar coordinate</a> barcodes</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MaxiCode" title="MaxiCode">MaxiCode</a></li>
<li><a href="ShotCode" title="ShotCode">ShotCode</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="High_Capacity_Color_Barcode" title="High Capacity Color Barcode">High Capacity Color Barcode (Microsoft Tag)</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Technological issues</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Barcode_library" title="Barcode library">Barcode library</a></li>
<li><a href="Barcode_printer" title="Barcode printer">Barcode printer</a></li>
<li><a href="Barcode_reader" title="Barcode reader">Barcode reader</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other data tags</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Radio-frequency_identification" title="Radio-frequency identification">RFID</a></li>
<li><a href="Bokode" title="Bokode">Bokode</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related topics</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Supply_chain_management" title="Supply chain management">Supply chain management</a></li>
<li><a href="Object_hyperlinking" title="Object hyperlinking">Object hyperlinking</a></li>
<li><a href="Matrix_(mathematics)" title="Matrix (mathematics)">Matrix</a></li>
<li><a href="Mobile_tagging" title="Mobile tagging">Mobile tagging</a></li>
<li><a href="CueCat" title="CueCat">CueCat</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow hlist" colspan="3"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li>
<li><span class="noviewer" typeof="mw:File"><span title="Commons page"></span></span> <a href="https://commons.wikimedia.org/wiki/Category:Barcode" class="extiw external" title="commons:Category:Barcode">Commons</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-31" href="https://en.wikipedia.org/wiki/?title=Data_Matrix&oldid=1303522954">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>